package view.terrain;

import java.util.Observable;
import java.util.Observer;

import server.models.cabane.ICabane;
import server.models.plateau.IPlateau;
import view.equipe.TireurView;


/**
 * Classe Cabane - Représente une cabane (station qui tire un pigeon d'argile).
 * @author Alexandre
 *
 */
public class CabaneView implements Observer {
	//---------Attributs---------
	private int plateau_x;
	private int plateau_y;
	private int direction;
	private PlateauView plateauView = null;
	
	//---------Méthodes---------
	/**
	 * Constructeur d'une cabane.
	 */
    public CabaneView(ICabane cabane){
    	((Observable)cabane).addObserver(this);
    }
    
    /**
     * Permet d'initialiser les propriétées des plateaux de la cabane.
     * @param x Position horizontale initiale du plateau.
     * @param y Position verticale initiale du plateau.
     * @param xSpeed Vitesse horizontale du plateau.
     * @param ySpeed Vitesse verticale du plateau.
     */
    public void setProperties(int x, int y, int direction){
    	this.plateau_x = x;
    	this.plateau_y = y;
    	this.direction = direction;
    }
        
    public PlateauView popPlateauView() {
		PlateauView plateau = this.plateauView;
		this.plateauView = null;
		return plateau;
	}

	@Override
	public void update(Observable cabane, Object arg1) {		
		this.plateauView = new PlateauView(((ICabane)cabane).getPlateau(), this.plateau_x, this.plateau_y, this.direction);
	}
}